package server_proxy

/*
封装服务端注册逻辑
*/

import (
	"learn_grpc/1_Rpc/5_client_loca_rpc/handler"
	"net/rpc"
)

/*
如何做到解耦，HelloService结构体不和handler中的绑定，不然handler中的HelloService名称修改这里也需要需改
*/
//这里采用接口，和定义实现接口的方法和HelloService结构体绑定的方法一样，从而实现解耦，然后interface又可以接收任何类型的入参
//实现了一个方法绑定结构体同时实现接口，达到了解耦
type HelloServicer interface {
	Hello(request string, reply *string) error
}

func RegisterHelloService(srv HelloServicer) error {
	return rpc.RegisterName(handler.HolleWorldServer_1, srv)
}
